package com.tedu.api.thread;

/**
 * 线程常用方法3:
 * 创建普通线程:叫用户线程/前台线程
 *
 * 聊天室  场子  车间进程[若干] 工具人线程
 * 软件关闭---全部用户嗝屁
 * 进程一定关闭
 *
 * 用户线程/前台线程与后台线程/守护线程的区别:
 * 用户线程/前台线程  挂了  后台线程/守护线程  嗝屁了
 *
 * 出现：守护线程又他凉执行一次【问题】
 * 守护线程特性:
 * 守护线程的执行是由JVM虚拟机调度以及操作系统相关,存在不可预知性，前台线程
 * 挂，守护线程阻塞状态中短时间调用一次
 *
 * 设置守护线程    setDaemon(true)  守护线程
 * 基本API：isDaemon 判断线程是否守护线程
 * 需求:创建两个线程 zsj 代表 直升机 ---阻塞1秒  5秒
 *                ld  代表  牢大 ---阻塞1秒   直升机坠毁牢大也坠机
 *
 */
public class Thread_Daemon {
    public static void main(String[] args) {
        //zsj线程 直升机
        Thread zsj=new Thread(()->{
            System.out.println("我是机长佐巴扬,飞机要坠毁了");
          for(int i=0;i<5;i++){
              System.out.println(i);
              try {
                  Thread.sleep(1000);
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }
          }
            System.out.println("Man!   哈哈哈哈   what can i say???");
        });

        //牢大
        Thread ld=new Thread(()->{
            //添加 while死循环
           while(true){
               try {
                   Thread.sleep(1000);
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
               System.out.println("我是牢大");
           }
        });
        /**
         * ld  设置为守护线程
         * zsj坠ld坠
         */
        ld.setDaemon(true);//ld守护线程zsj
        zsj.start();
        ld.start();
    }
}
